package com.qf.service.impl;

import com.qf.pojo.Order;
import com.qf.service.OrderService;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

//@Service

/*
    通过dubbo的service注解，将该服务暴露出去，让消费者可以远程访问

    ① 将当前业务类、方法的信息，包括提供端内部启动的web容器的协议、ip和端口号信息，组织成一个URL，将这个URL发送到zookeeper中保存

    ② 在提供端内部基于我们配置的协议端口启动一个内部的web容器。这个容器的作用等待消费者远程访问。

 */
@Service(timeout = 6000,version = "2.0")
public class OrderServiceImpl implements OrderService {

    @Value("${server.port}")
    private Integer port;

    @Override
    public List<Order> findByUid(Integer uid) throws InterruptedException {

        System.out.println("提供端业务被调用了... " + port);

        if (port == 81) {
            Thread.sleep(5000);
        }

        //根据用户id，数据库查询用户的订单信息
        Order order1 = new Order(1,uid,1000d,"用户丁1:"+port);
        Order order2 = new Order(2,uid,2000d,"用户丁2:"+port);
        Order order3 = new Order(3,uid,3000d,"用户丁3:"+port);

        List<Order> orders = new ArrayList<>();
        orders.add(order1);
        orders.add(order2);
        orders.add(order3);

        System.out.println("服务端业务睡眠后，代码继续执行...");

        return orders;
    }
}
